package cn.tedu.apiday03;

import java.io.File;
import java.util.Scanner;

//递归测试目录总大小
//递归 ： 就是在方法内部自己调自己
public class SizeAction {
    public static void main(String[] args) {
        //接收用户输入的文件夹路径
        String path = new Scanner(System.in).nextLine();
        //调用指定方法求大小
        File dir = new File(path);
        long max = size(dir);
        System.out.println("文件夹总大小"+max);
    }
    //创建size（）方法求大小
    public static long size( File a){
        long sum = 0;//定义变量 记录总大小
        //列出所有资源
        File[] fs=a.listFiles();
        //判断资源是文件还是文件夹
        for (int i = 0; i <fs.length ; i++) {
            if (fs[i].isFile()) {//判断资源是文件？如果是文件直接求大小

                sum = sum+fs[i].length();//如果是文件 直接length（）求和

            } else if (fs[i].isDirectory()) {//判断资源是文件夹？ 如果是文件夹重复列资源，判断等等
                sum = sum+size(fs[i]);//把当前的文件夹资源再求和的过程
            }
        }
        return sum;//把最终的和返回给外界调用位置

    }


}
